#ifndef SCHEMEWINDOW_H
#define SCHEMEWINDOW_H

#include <QObject>
#include <QScrollArea>

#include "subjectwindow.h"
#include "microscheme.h"
#include "drawpanel.h"
#include "centrifier.h"

//Окно редактора схемы
class SchemeWindow : public SubjectWindow
{
    Q_OBJECT

private:
    //Схема
    MicroScheme* scheme;

    //Область с полосами прокрутки
    QScrollArea* scrollPanel;

    //Холст схемы
    DrawPanel* canvas;

    //Контейнер для центрирования
    Centrifier* centrifier;

    //Инициализация
    void init(IToolBox* toolbox);

    //Создать пустую схему
    void createScheme();

    //Загрузить из файла
    void loadFromFile(QString file);

public:
    //Создать новую схему
    SchemeWindow(IToolBox* toolbox);

    //Загрузить из файла
    SchemeWindow(IToolBox *toolbox, QString file);

    ~SchemeWindow();

    //Флаг несохранённых изменений
    bool isModified;

    //Вызвать диалог сохранения
    void save();

    //Вызвать диалог "Сохранить как"
    void saveAs();
};

#endif // SCHEMEWINDOW_H
